You are here: Symbol Reference > Dew Namespace > Dew.Stats Namespace > Dew.Stats.Units Namespace > Classes > Regress Class > Regress Methods > MulLinRegress Method > Regress.MulLinRegress Method ([In] TVec, [In] TMtx, [In] TVec, [In] TVec, bool, [In] TVec, [In] TMtx, TRegSolveMethod)
Dew Stats for .NET
ContentsIndexHome
PreviousUpNext
Regress.MulLinRegress Method ([In] TVec, [In] TMtx, [In] TVec, [In] TVec, bool, [In] TVec, [In] TMtx, TRegSolveMethod)

Multivariante linear regression.

Syntax
C#
Visual Basic
public static void MulLinRegress([In] TVec Y, [In] TMtx A, [In] TVec b, [In] TVec Weights, bool Constant, [In] TVec YCalc, [In] TMtx ATA, TRegSolveMethod Method);
Parameters 
Description 
[In] TVec Y 
Defines vector of dependant variable. 
[In] TMtx A 
Defines matrix of independant (also X) variables. 
[In] TVec b 
Returns calculated regression coefficiens. 
[In] TVec Weights 
Defines weights (optional). 
bool Constant 
If true then intercept term b(0) will be included in calculations. If false, set intercept term b(0) to 0.0. 
[In] TVec YCalc 
Returns vector of calculated dependant variable, where YCalc = A*b
[In] TMtx ATA 
Returns inverse matrix of normal equations i.e [A(T)*A]^-1
TRegSolveMethod Method 
Use QR, SVD, or LU solver. Typically QR will yield best compromise between stability and performance. 

Routine fits equations to data by minimizing the sum of squared residuals: 

SS = Sum [y(k) - ycalc(k)]^2 , 

where y(k) and ycalc(k) are respectively the observed and calculated value of the dependent variable for observation k. ycalc(k) is a function of the regression parameters b(0), b(1) ... Here the observed values obey the following equation: 

y(k) = b(0) + b(1) * x(1,k) + b(2) * x(2,k) + ... 

i.e 

y = A * b. 

To calculate additional regression statistical values, use RegressTest routine.

The following example performs multiple linear regression.

using Dew.Math; using Dew.Stats.Units; using Dew.Stats; namespace Dew.Examples { private void Example() { Matrix A = new Matrix(0, 0); Matrix ATA = new Matrix(0, 0); Vector y = new Vector(0); Vector b = new Vector(0); Vector w = new Vector(0); Vector yhat = new Vector(0); Vector residuals = new Vector(0); Vector BStdDev = new Vector(0); TRegStats rs; // independent variables A.SetIt(4, 2, false, new double[] {1.0, 2.0, -3.2, 2.5, 8.0, -0.5, -2.2, 1.8}); w.SetIt(false, new double[] { 1, 2, 2, 1 }); // weights y.SetIt(false, new double[] { -3.0, 0.25, 8.0, 5.5 }); // dependent variables Regress.MulLinRegress(y, A, b, w, true, yhat, ATA, TRegSolveMethod.regSolveLQR); //do regression // b=(19.093757944, -2.0141843616, -10.082487055) Regress.RegressTest(y, yhat, ATA, out rs, residuals, BStdDev, true, w); // do basic regression stats // RegStat = (ResidualVar:0.037230395108; R2:0.99965713428; // AdjustedR2:0.99897140285; F:1457.7968725; SignifProb: 0.01851663347) } }
Copyright (c) 1999-2024 by Dew Research. All rights reserved.
What do you think about this topic? Send feedback!